﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Obra.SmugMug.Api
{
    internal static partial class UriTemplates
    {
        internal static class Albums
        {
            public const string Get = ""
                + "?method=smugmug.albums.get"
                + "&Heavy=1"
                + "&SessionID={sessionId}";

            public const string GetInfo = ""
                + "?method=smugmug.albums.getInfo"
                + "&Heavy=1"
                + "&SessionID={sessionId}"
                + "&AlbumID={albumId}";

            public const string Create = ""
                + "?method=smugmug.albums.create"
                + "&SessionID={sessionId}"
                + "&Title={title}"
                + "&CategoryID={categoryId}";

            #region smugmug.album.changeSettings

            private const string ChangeSettingPreamble = ""
                + "?method=smugmug.albums.changeSettings"
                + "&SessionID={sessionId}"
                + "&AlbumID={albumId}";

            public const string ChangeCategoryId = Albums.ChangeSettingPreamble
                + "&CategoryID={categoryId}";

            public const string ChangeSubCategoryId = Albums.ChangeSettingPreamble
                + "&SubCategoryID={subCategoryId}";

            public const string ChangeCommunityId = Albums.ChangeSettingPreamble
                + "&CommunityID={communityId}";

            public const string ChangeHighlightId = Albums.ChangeSettingPreamble
                + "&HighlightID={highlightId}";

            public const string ChangeDescription = Albums.ChangeSettingPreamble
                + "&Description={description}";

            public const string ChangeKeywords = Albums.ChangeSettingPreamble
                + "&Keywords={keywords}";

            public const string ChangePassword = Albums.ChangeSettingPreamble
                + "&Password={password}";

            public const string ChangePasswordHint = Albums.ChangeSettingPreamble
                + "&PasswordHint={passwordHint}";

            public const string ChangePosition = Albums.ChangeSettingPreamble
                + "&Position={position}";

            public const string ChangeSortMethod = Albums.ChangeSettingPreamble
                + "&SortMethod={sortMethod}";

            public const string ChangeSortDirection = Albums.ChangeSettingPreamble
                + "&SortDirection={sortDirection}";

            public const string ChangePublic = Albums.ChangeSettingPreamble
                + "&Public={public}";

            public const string ChangeFileNames = Albums.ChangeSettingPreamble
                + "&Filenames={filenames}";

            public const string ChangeComments = Albums.ChangeSettingPreamble
                + "&Comments={comments}";

            public const string ChangeExternal = Albums.ChangeSettingPreamble
                + "&External={external}";

            public const string ChangeExif = Albums.ChangeSettingPreamble
                + "&EXIF={exif}";

            public const string ChangeShare = Albums.ChangeSettingPreamble
                + "&Share={share}";

            public const string ChangePrintable = Albums.ChangeSettingPreamble
                + "&Printable={printable}";

            public const string ChangeOriginals = Albums.ChangeSettingPreamble
                + "&Originals={originals}";

            public const string ChangeFamilyEdit = Albums.ChangeSettingPreamble
                + "&FamilyEdit={familyEdit}";

            public const string ChangeFriendEdit = Albums.ChangeSettingPreamble
                + "&FriendEdit={friendEdit}";

            public const string ChangeHideOwner = Albums.ChangeSettingPreamble
                + "&HideOwner={hideOwner}";

            public const string ChangeHeader = Albums.ChangeSettingPreamble
                + "&Header={header}";

            public const string ChangeTemplateId = Albums.ChangeSettingPreamble
                + "&TemplateID={templateId}";

            public const string ChangeLarges = Albums.ChangeSettingPreamble
                + "&Larges={larges}";

            public const string ChangeXLarges = Albums.ChangeSettingPreamble
                + "&XLarges={xlarges}";

            public const string ChangeX2Larges = Albums.ChangeSettingPreamble
                + "&X2Larges={x2larges}";

            public const string ChangeX3Larges = Albums.ChangeSettingPreamble
                + "&X3Larges={x3larges}";

            public const string ChangeDefaultColor = Albums.ChangeSettingPreamble
                + "&DefaultColor={defaultColor}";

            public const string ChangeClean = Albums.ChangeSettingPreamble
                + "&Clean={clean}";

            public const string ChangeProtected = Albums.ChangeSettingPreamble
                + "&Protected={protected}";

            public const string ChangeWatermarking = Albums.ChangeSettingPreamble
                + "&Watermarking={watermarking}";

            public const string ChangeProofDays = Albums.ChangeSettingPreamble
                + "&ProofDays={proofDays}";

            public const string ChangeColorCorrection = Albums.ChangeSettingPreamble
                + "&ColorCorrection={colorCorrection}";

            public const string ChangeGeography = Albums.ChangeSettingPreamble
                + "&Geography={geography}";

            public const string ChangeWatermarkId = Albums.ChangeSettingPreamble
               + "&WatermarkID={watermarkId}";

            public const string ChangeUnsharpAmount = Albums.ChangeSettingPreamble
               + "&UnsharpAmount={unsharpAmount}";

            public const string ChangeUnsharpRadius = Albums.ChangeSettingPreamble
             + "&UnsharpRadius={unsharpRadius}";

            public const string ChangeUnsharpSigma = Albums.ChangeSettingPreamble
             + "&UnsharpSigma={unsharpSigma}";

            public const string ChangeUnsharpThreshold = Albums.ChangeSettingPreamble
             + "&UnsharpThreshold={unsharpThreshold}";

            public const string ChangeBackprinting = Albums.ChangeSettingPreamble
                + "&Backprinting={backPrinting}";

            public const string ChangeCanRank = Albums.ChangeSettingPreamble
               + "&CanRank={canRank}";

            public const string ChangeSmugSearchable = Albums.ChangeSettingPreamble
                + "&SmugSearchable={smugSearchable}";

            public const string ChangeWorldSearchable = Albums.ChangeSettingPreamble
                + "&WorldSearchable={worldSearchable}";

            public const string ChangeTitle = Albums.ChangeSettingPreamble
                + "&Title={title}";

            public const string ChangeSettings = ""
                + "?method=smugmug.albums.changeSettings"
                + "&SessionID={sessionId}"
                + "&AlbumID={albumId}"
                + "&CategoryID={categoryId}"
                + "&SubCategoryID={subCategoryId}"
                + "&CommunityID={communityId}"
                + "&HighlightID={highlightId}"
                + "&Description={description}"
                + "&Keywords={keywords}"
                + "&Password={password}"
                + "&PasswordHint={passwordHint}"
                + "&Position={position}"
                + "&SortMethod={sortMethod}"
                + "&SortDirection={sortDirection}"
                + "&Public={public}"
                + "&Filenames={filenames}"
                + "&Comments={comments}"
                + "&External={external}"
                + "&EXIF={exif}"
                + "&Share={share}"
                + "&Printable={printable}"
                + "&Originals={originals}"
                + "&FamilyEdit={familyEdit}"
                + "&FriendEdit={friendEdit}"
                + "&HideOwner={hideOwner}"
                + "&Header={header}"
                + "&TemplateID={templateId}"
                + "&Larges={larges}"
                + "&XLarges={xlarges}"
                + "&X2Larges={x2larges}"
                + "&X3Larges={x3larges}"
                + "&DefaultColor={defaultColor}"
                + "&Clean={clean}"
                + "&Protected={protected}"
                + "&Watermarking={watermarking}"
                + "&ProofDays={proofDays}"
                + "&Backprinting={backPrinting}"
                + "&SmugSearchable={smugSearchable}"
                + "&WorldSearchable={worldSearchable}"
                + "&UnsharpAmount={unsharpAmount}"
                + "&UnsharpRadius={unsharpRadius}"
                + "&UnsharpThreshold={unsharpThreshold}"
                + "&UnsharpSigma={unsharpSigma}";

            #endregion smugmug.album.changeSettings

            public const string Sort = ""
                + "?method=smugmug.albums.ReSort"
                + "&SessionID={sessionId}"
                + "&AlbumID={albumId}"
                + "&By={by}"
                + "&Direction={direction}";

            public const string Delete = ""
                + "?method=smugmug.albums.delete"
                + "&SessionID={sessionId}"
                + "&AlbumID={albumId}";

            public const string GetStats = ""
                + "?method=smugmug.albums.getStats"
                + "&Heavy=1"
                + "&SessionID={sessionId}"
                + "&AlbumID={albumId}"
                + "&Month={month}"
                + "&Year={year}";
        }
    }
}
